跳到主要内容

基本设定

  1. host IP: 192.168.1.254,  gateway: 192.168.1.1(OpenWRT)

  2. container IP: 192.168.1.1,    gateway: DHCP from upstream

ARMBIAN设置
1 软件准备

  1. docker import https://downloads.openwrt.org/releases/18.06.2/targets/armvirt/64/openwrt-18.06.2-armvirt-64-default-rootfs.tar.gz openwrt:18.06.2

2 网络设置

  1. vi /etc/network/interfaces

  2. iface eth0 inet dhcp

  3.     up ip link set eth0 promisc on

  4. vi /etc/network/interfaces.d/bridge

  5. auto  br-lan

  6. iface br-lan inet static

  7.     address 192.168.1.254

  8.     netmask 255.255.255.0

  9.     gateway 192.168.1.1

  10.     dns-nameservers 192.168.1.1

  11.     bridge_ports wlan0

3 启动WiFi(2.4G)

  1. vi /etc/default/hostapd

  2. ...

  3. DAEMON_CONF="/etc/hostapd.conf"

  4. ...

  5. vi /etc/hostapd.conf

  6. ...

  7. interface=wlan0

  8. bridge=br-lan

  9. driver=nl80211

4 N1重启后,新建container与配套网络

  1. docker network create -d bridge  --subnet 192.168.1.0/24 --gateway=192.168.1.254 -o "com.docker.network.bridge.name=br-lan" lanet

  2. docker run -d --name N1 --network lanet --privileged openwrt:18.06.2 /sbin/init

  3. docker network create -d macvlan -o parent=eth0 wanet

  4. docker network connect wanet N1

  5. docker exec -it N1 sh

复制代码

**Container(**OpenWRT)设置
网络设置

  1. vi /etc/config/network

  2. ...

  3. config interface 'wan'

  4.         option ifname 'eth1'

  5.         option proto 'dhcp'

  6. config interface 'wan6'

  7.         option ifname '@wan'

  8.         option proto 'dhcpv6'

复制代码

ARMBIAN设置
1 重启N1后,手工启动container

  1. docker start N1

复制代码

2 更换缺省路由到OpenWRT,确认网络环境正常: 手机可以看到N1放出的ARMBIAN 无线信号,用密码 12345678 登入后应能正常上网。网络设置里可以看到gateway为192.168.1.1
确认一切正常?设置container自动重启

  1. docker update --restart always N1

复制代码

3 确认/etc/resolv.conf内nameserver 指向正确的IP(按本文设置应该是192.168.1.1):设置docker后DHCP获取上级网络信息往往出问题,导致docker内openwrt DNS不能正常解析。
4 最后重启N1,设置全部完成。

登入N1的无线网络后,可以通过 http://openwrt 访问路由器。